1. Field of the Invention
The present invention relates to a technique for converting object oriented software programs into a form which permits easy transport over a network. More particularly, the present invention relates to a technique for converting an object oriented software application into a single platform-independent class for sending over the Internet which is platform independent and installs itself at the receiving location.
2. Description of the Related Art
While the logic portion of a software program is typically written in a single programming language, data portions can be a hybrid of a number of different formats which are supported by the programming language in which the software application is written. For example, the data portions of a software application can include HTML files, GIF files, and JPEG files.
Software applications and/or data files are routinely sent over networks. A number of techniques and products exist for enhancing the sending and receiving of programs and data. One widely used tool is the PKZip product, which a sender of a program or data uses to package the program or data and which the receiver of the program or data from the network uses to unzip the program or data; that is, return the program or data to its normal form. Programs or data are often compressed using any of a number of known algorithms to reduce their size before being sent over network in order to minimize processor overhead and network traffic and speed delivery. Also, computer files can be packaged together as a self-extracting file which is sent over a network. When the receiving party opens the self-extracting file, the file automatically unpacks itself into its original constituent files.
The Java programming language includes features which make it highly popular for use with the network known as the Internet. Java is a trademark of Sun Microsystems, Inc. For example, small components of Java code known as applets can be retrieved or downloaded by computer users over the Internet. These applets are executed by an appropriate enabled receiving computer system as they are received by the receiving computer. However, this technique is not applicable to Java programs which include data outside of Java language constructs.
To date, no optimized network transfer solution has been developed for full scale programs written in object oriented languages, such as Java and Smalltalk. The network transfer solutions which do exist tend to mute the inherent platform independent efficiencies in full scale programs written in languages such as Java. Java applications can run on any platform which is Java enabled. However, if a sender used a PKZip tool on the Windows operation system to package a Java application for sending over a network, the receiving party must use a PKZip tool on the Windows operating system in order to unpackage the Java application. Windows is a trademark of Microsoft Corporation. Thus, platform dependence is reintroduced. Similarly, other packaging or compression techniques are often platform dependent. Thus, in order to optimize the platform independent ability of the Java programming language, a new technique is needed which permits enhanced packaging for the sending and receiving of software applications to and from any Java enabled platform.
Security has also become a major issue in the sending and receiving of programs and data over networks. The Java programming language has built in security features which permit Java classes being received by a receiving computer to be checked to make sure that they conform with certain standards before they are permitted to be received. In this era of computer viruses, network glitches and the transfer of bogus information, security is necessary to insure the integrity of the receiving computer. However, even for Java program, this does not extend to portions of the Java programs which are not Java classes, such as HTML files, GIF files, and JPEG files. Enhanced security for resource files results from the invention described in U.S. patent application Ser. No. 08/692,856, entitled "Technique for Creating Internet Enabled Resource Files" which was filed on Jul. 26, 1996 and is assigned to the same assignee as the present application. This technique converts individual data resource files into Java classes. While security is enhanced, it is not the prime focus of that invention, and does not address other problems associated with sending a Java application over a network.
Accordingly, a need exists for a platform independent technique for packaging, transferring and receiving object oriented programs over a network.